<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This file documents the BFD library.

Copyright (C) 1991-2020 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "GNU General Public License" and "Funding
Free Software", the Front-Cover texts being (a) (see below), and with
the Back-Cover Texts being (b) (see below).  A copy of the license is
included in the section entitled "GNU Free Documentation License".

(a) The FSF's Front-Cover Text is:

A GNU Manual

(b) The FSF's Back-Cover Text is:

You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development. -->
<!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Define the Derived Structures (Untitled Document)</title>

<meta name="description" content="Define the Derived Structures (Untitled Document)">
<meta name="keywords" content="Define the Derived Structures (Untitled Document)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="index.html#Top" rel="start" title="Top">
<link href="BFD-Index.html#BFD-Index" rel="index" title="BFD Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Deriving-a-New-Hash-Table-Type.html#Deriving-a-New-Hash-Table-Type" rel="up" title="Deriving a New Hash Table Type">
<link href="Write-the-Derived-Creation-Routine.html#Write-the-Derived-Creation-Routine" rel="next" title="Write the Derived Creation Routine">
<link href="Deriving-a-New-Hash-Table-Type.html#Deriving-a-New-Hash-Table-Type" rel="prev" title="Deriving a New Hash Table Type">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en">
<a name="Define-the-Derived-Structures"></a>
<div class="header">
<p>
Next: <a href="Write-the-Derived-Creation-Routine.html#Write-the-Derived-Creation-Routine" accesskey="n" rel="next">Write the Derived Creation Routine</a>, Previous: <a href="Deriving-a-New-Hash-Table-Type.html#Deriving-a-New-Hash-Table-Type" accesskey="p" rel="prev">Deriving a New Hash Table Type</a>, Up: <a href="Deriving-a-New-Hash-Table-Type.html#Deriving-a-New-Hash-Table-Type" accesskey="u" rel="up">Deriving a New Hash Table Type</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="BFD-Index.html#BFD-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Define-the-derived-structures"></a>
<h4 class="subsubsection">2.18.4.1 Define the derived structures</h4>
<p>You must define a structure for an entry in the hash table,
and a structure for the hash table itself.
</p>
<p>The first field in the structure for an entry in the hash
table must be of the type used for an entry in the hash table
you are deriving from.  If you are deriving from a basic hash
table this is <code>struct bfd_hash_entry</code>, which is defined in
<code>bfd.h</code>.  The first field in the structure for the hash
table itself must be of the type of the hash table you are
deriving from itself.  If you are deriving from a basic hash
table, this is <code>struct bfd_hash_table</code>.
</p>
<p>For example, the linker hash table defines <code>struct
bfd_link_hash_entry</code> (in <code>bfdlink.h</code>).  The first field,
<code>root</code>, is of type <code>struct bfd_hash_entry</code>.  Similarly,
the first field in <code>struct bfd_link_hash_table</code>, <code>table</code>,
is of type <code>struct bfd_hash_table</code>.
</p>



</body>
</html>
